﻿using System;
using System.Text;

namespace MyFastDataSourceBind
{
    /// <summary>
    /// 数据源事件参数
    /// </summary>
    /// <remarks>编写 袁永福</remarks>
    public class XDataSourceEventArgs : System.EventArgs
    {
        /// <summary>
        /// 初始化对象
        /// </summary>
        /// <param name="style">事件类型</param>
        /// <param name="dataSource">数据源对象</param>
        public XDataSourceEventArgs(XDataSourceEventStyle style, XDataSource dataSource)
        {
            intStyle = style;
            myDataSource = dataSource;
        }

        private XDataSourceEventStyle intStyle = XDataSourceEventStyle.None;
        /// <summary>
        /// 数据源事件类型
        /// </summary>
        public XDataSourceEventStyle Style
        {
            get
            {
                return intStyle;
            }
        }

        private XDataSource myDataSource = null;
        /// <summary>
        /// 发起事件的数据源对象
        /// </summary>
        public XDataSource DataSource
        {
            get
            {
                return myDataSource;
            }
        }

        private bool bolCancel = false;
        /// <summary>
        /// 设置或获得取消操作标记
        /// </summary>
        public bool Cancel
        {
            get { return bolCancel; }
            set { bolCancel = value; }
        }
    }

    /// <summary>
    /// 数据源事件类型
    /// </summary>
    public enum XDataSourceEventStyle
    {
        /// <summary>
        /// 无效类型
        /// </summary>
        None,
        /// <summary>
        /// 通知用户界面控件从数据源中读取并显示数据
        /// </summary>
        FillUI,
        /// <summary>
        /// 通知用户界面控件保存用户输入的数据到数据源中,数据源准备保存数据到数据库中
        /// </summary>
        ReadUI,
        /// <summary>
        /// 通知用户界面控件数据源开始新增数据行，但数据尚未保存
        /// </summary>
        BeforeNewRecord,
        /// <summary>
        /// 通知用户界面控件数据源进入编辑状态
        /// </summary>
        BeforeEdit,
        /// <summary>
        /// 通知用户界面控件数据源开始新增记录，但数据尚未保存
        /// </summary>
        BeforeInsert,
        /// <summary>
        /// 通知用户界面控件数据源准备删除记录，但数据尚未删除
        /// </summary>
        BeforeDelete
    }
}